Hub controller with connected first and second device wherein second device contains drivers and first device in disable state before driver read from second device

ABSTRACT

A general-purpose electronic device, a method of controlling the same, and an information processing system are provided. This electronic device has a function of automatically installing its driver in the information processing system. The driver is stored in the electronic device. The electronic device includes a first device and a second device in which the driver of the first device is stored. The first and second devices generate transactions on a common interface for external connection. The operation of the second device is started before the operation of the first device, and a means is employed to make the driver readable from the second device through the common interface.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to an electronic device that hasa driver stored therein and a method of controlling the electronicdevice, and more particularly, to a technique of installing the driverof the electronic device in an information processing apparatus to whichthe electronic device is to be connected as a peripheral device.

2. Description of the Related Art

There is a type of information processing system that includes aninformation processing apparatus and an electronic device connected tothe information processing apparatus. The electronic device serves as aperipheral device for the information processing apparatus, and iscontrolled by the operating system (OS) of the information processingapparatus. The OS requires dedicated software to control the peripheraldevice. This software is referred to as a device driver or simply as adriver. The device driver is installed in the information processingapparatus, so that the peripheral device can exhibit its performance onthe information processing apparatus.

FIG. 1 is a block diagram of a conventional information processingprocess. A peripheral device 20 having an USB (Universal Serial Bus)interface is connected to an information processing system 10 with aUSB. The information processing system 10 will be hereinafter referredto simply as the “PC 10”, and the peripheral device 20 as the “USBdevice 20”. The USB device 20 shown in FIG. 1 is a keyboard. The PC 10includes a USB host controller 14 and a storage device 15. The storagedevice 15 is a flexible magnetic disk (FD) or a CD-ROM, for example. Akeyboard driver 12 and a storage device driver 13 are installed in theOS 11 of the PC 10, and are connected to the USB host controller 14 andthe storage device 15 via internal buses 16 and 17, respectively. TheUSB device 20 includes a keyboard device 21 so as to function as akeyboard. The keyboard device 21 is connected to the USB host controller14 via a USB cable 18. The OS 11 may be the Windows (a trademark), whichis produced by Microsoft Corporation.

As the USB device 20 is connected to the PC 10 with the USB cable 18,the USB host controller 14 detects the connection of new software. Toinstall a driver of the USB device 20, the USB host controller 14requests for a FD or CD-ROM storing a driver to be mounted to the driverof the storage device 15. The driver (the keyboard driver 12 in thiscase) of the USB device 20 is read from the mounted FD, and is installedin the OS 11. In this manner, the software to control the peripheraldevice is installed by a recording medium and a device different fromthe peripheral device.

In a notebook-type personal computer or a PDA (Personal DigitalAssistant), an FD drive and a CD-ROM drive are not mounted on the PC 10.Therefore, to install the keyboard driver 12 by the above method, anexternal device such as a USB external storage device 22 shown in FIG. 2needs to be employed so as to connect the keyboard driver 12 to the USBhost controller 14 of the PC 10 with a USB 19.

To solve this problem, Japanese Unexamined Patent Publication No.2000-322241 discloses a structure in which the peripheral device holdssoftware. This publication teaches that a driver is read from a storagedevice in a peripheral device and is automatically installed in the OS.

However, the art disclosed in this publication is based on theassumption that the storage device mounted on the peripheral unit can bealways read and written, with the peripheral device being connected to ahost device. Therefore, according to the art disclosed in the abovepublication, read and write cannot be performed when the storage devicemounted on the peripheral device is disabled.

Taking as an example a case where a USB is employed as an interface witha peripheral device in the “Windows” (a trademark of MicrosoftCorporation), which has the largest marketing share as the OS operatingon PCs, the above-described problem of the prior art will be describedbelow with reference to FIG. 3.

A peripheral device 23 shown in FIG. 3 is a USB device that includes akeyboard device 24 and a USB external storage device 25. The USBexternal storage device 25 has a keyboard driver stored therein. Beforethe USB external storage device 25 is connected, the keyboard driver 12has not been installed in the OS 11. As soon as the USB device 23 isconnected to the PC 10 for the first time, the USB host controller 14automatically recognizes that the keyboard device 24 has been connectedto the USB external storage device 25 via the USB host controller 14.This is because the keyboard device 24 and the USB external storagedevice 25 can generate transactions (operations to be performed by thePC) on a common USB interface. Since the keyboard driver has not beeninstalled in this case, the USB host controller 14 requests for theinput of the location of the file in which the driver of the keyboarddevice 24 is stored. Even if the OS 11 has the driver of the USBexternal storage device 25, it is impossible for the USB structure toread the keyboard driver from the USB external storage device 25, withan unknown keyboard driver existing, i.e., with the USB device 23 havingnot been recognized. Accordingly, the USB device 23 mounted on the USBexternal storage device 25 cannot be put into practical use.

In this case, the OS 11 requests the operator to input the location ofthe file in which the keyboard driver is stored. As the USB device 23has not been recognized at this point, the USB external storage device25 cannot be of course designated. The operator therefore needs toprepare a separate recording medium in which the keyboard driver isstored. Receiving this request, the operator inputs the location of asuitable recording medium or a file in which a suitable driver isstored, so that the installation of the keyboard driver can be resumed.

As described above, the USB external storage device 25 mounted on theUSB device 23 cannot be used unless the use of the USB device 23 isallowed. Accordingly, the keyboard driver cannot be read from the USBexternal storage device 25 and then installed.

This problem can be seen not only with USB interfaces, but also withother type of interfaces.

Japanese Unexamined Patent Publication No. 2000-194645 discloses atechnique of facilitating installation and rewrite of a driver of aperipheral device with a USB. This publication teaches that a ROM havinga plurality of device drivers stored therein is installed in the USBdevice. When the USB device is connected to a PC, the correspondingcontrol data is read from the ROM under the control of a USB hostdevice, so that the USB device is set to the first configuration. Thefirst configuration defines the state in which data can be transferredfrom the USB device to the host device. In this defined state, a devicedriver is read from the ROM, and is then transferred to the USB hostdevice. The transferred device driver is stored in the memory of thehost device. The USB host device then sends a request for anotherconfiguration to the USB device. Receiving this request, the USB deviceis set to the second configuration from the first configuration. Thus,the use of the function of the USB device can be allowed.

However, this method requires a special step of issuing an instructionfrom the USB host device to the USB device so as to switchconfigurations. For this reason, this method cannot be applied to aconventional PC having a USB host device installed therein as it is.

SUMMARY OF THE INVENTION

It is therefore an object of the present invention to provide anelectronic device, a method of controlling the electronic device, and aninformation processing system in which the above disadvantages areeliminated.

A more specific object of the present invention is to provide ageneral-purpose electronic device that has a function of automaticinstallation of a device driver stored therein, a method of controllingthe electronic device, and an information processing system.

The above objects of the present invention are achieved by an electronicdevice includes: a first device; a second device in which a driver ofthe first device is stored, the first device and second device beingable to generate transactions on an interface shared for respectiveexternal connections; and a unit that starts an operation of the seconddevice before starting an operation of the first device, so as to makethe driver readable from the second device via the interface. When theelectronic device is connected to an information processing device suchas a personal computer, the unit causes the second device to start. Thismakes it possible the driver to be read on the interface from the seconddevice. Thus, the driver can be installed in the information processingdevice. If it is supposed that the above-mentioned unit is not employed,the first and second devices can generate transactions on the interfaceshared for the respective external connections, and connections with thefirst and second devices will be simultaneously recognized. In thiscase, the information processing device will request the driver for thefirst device. In contrast, according to the aspect of the presentinvention, connection with the second device that stores the driver ofthe first device is recognized first without exception. This results inavoidance of the above-mentioned situation.

The above objects of the present invention are also achieved by a methodof controlling an electronic device that includes a first device and asecond device storing a driver of the first device, and can generatetransactions on an interface shared for external connection, the methodcomprising the step of starting an operation of the second device beforean operation of the first device, so as to make the driver readable fromthe second device via the interface.

The above objects of the present invention are also achieved by a systemcomprising: an electronic device that includes a first device and asecond device storing a driver of the first device, and can generatetransactions on an interface shared for respective external connections;and an information processing apparatus to be connected to theelectronic device via the interface, the electronic device furtherincluding a unit that starts an operation of the second device beforestarting an operation of the first device, so as to make the driverreadable from the second device via the interface.

BRIEF DESCRIPTION OF THE DRAWINGS

Other objects, features and advantages of the present invention willbecome more apparent from the following detailed description when readin conjunction with the accompanying drawings, in which:

FIG. 1 is a block diagram of a conventional information processingsystem;

FIG. 2 is a block diagram illustrating a conventional method ofinstalling a driver;

FIG. 3 is a block diagram illustrating the problems with the prior art;

FIG. 4 is a block diagram of a structure according to a first embodimentof the present invention;

FIGS. 5(A) and 5(B) are a flowcharts of a sequence showing an operationaccording to the first embodiment;

FIG. 6 is a block diagram of an example structure of the keyboard deviceshown in FIG. 4;

FIG. 7 is a block diagram of an example structure of the storage deviceshown in FIG. 4;

FIG. 8 is a block diagram of an example structure of a hub controller inthe USB/hub controller shown in FIG. 4;

FIG. 9 is a block diagram of a structure according to a secondembodiment of the present invention;

FIG. 10 is a block diagram of an example structure of the storage deviceshown in FIG. 9;

FIG. 11 is a block diagram of an example structure of a hub controllerin the USB/hub controller shown in FIG. 9;

FIG. 12 is a block diagram of a structure according to a thirdembodiment of the present invention;

FIG. 13 is a block diagram of an example structure of the storage deviceand a hub controller in the USB/hub controller shown in FIG. 12;

FIG. 14 is a block diagram of a structure according to a fourthembodiment of the present invention;

FIG. 15 is a block diagram of an example structure of the keyboarddevice shown in FIG. 14;

FIG. 16 is a block diagram of an example structure of the storage deviceshown in FIG. 14;

FIG. 17 is a block diagram of a structure that is the combination of thestructures shown in FIGS. 15 and 16;

FIG. 18 is a block diagram of a structure according to a fifthembodiment of the present invention;

FIG. 19 is a block diagram of a structure according to a sixthembodiment of the present invention;

FIG. 20 is a block diagram of an example structure of the keyboarddevice shown in FIG. 19;

FIG. 21 is a block diagram of an example structure of a hub controllerin the USB/hub controller shown in FIG. 19;

FIG. 22 is a block diagram of a structure according to a seventhembodiment of the present invention;

FIG. 23 is a block diagram of an example structure of the storage deviceand a hub controller in the USB/hub controller shown in FIG. 22;

FIG. 24 is a block diagram of a structure according to an eighthembodiment of the present invention; and

FIG. 25 illustrates the structure of the multi function controller shownin FIG. 24.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following is a description of embodiments of the present invention,with reference to the accompanying drawings.

(First Embodiment)

FIG. 4 is a block diagram of the structure of an information processingsystem according to a first embodiment of the present invention. Thisinformation processing system includes an information processingapparatus 10 and an electronic device 30. The information processingapparatus 10 may be a personal computer, for example. The electronicdevice 30 is a peripheral device that can be connected to theinformation processing apparatus 10, and is a keyboard in the exampleshown in FIG. 4. The information processing apparatus 10 and theelectronic device 30 are connected to each other with a USB cable 18.Hereinafter, the electronic device 30 will be referred to as the “USBdevice 30”, and the information processing apparatus 10 as the “PC 10”.

The OS 11 of the PC 10 is the “Windows” (a trademark of MicrosoftCorporation), for example. In FIG. 4, a keyboard driver 12, a storagedevice driver 13, and a hub driver 27 are installed in the OS 11. Amongthese drivers, the storage device driver 13 and the hub driver 27 arestandard device drivers that are incorporated into the OS 11 in advance.The keyboard driver 12 is installed in a manner that will be describedlater. Although not shown, many programs, other various drivers, andvarious utilities are incorporated into the OS 11. The OS 11 isconnected to the host controller 14 via an internal bus 16. The hardwarestructure of the PC 10 is the same as a general hardware structureincluding a CPU, a RAM, and a ROM. The USB host controller 14 supportsthe USB, and combines the functions of the peripheral device connectedto the PC 10, so that the OS 11 can exhibit the functions of theperipheral device.

The USB device 30 includes a keyboard device 31, a storage device 32,and a hub device 34 located inside a USB/hub controller 33. Thesedevices are peripheral functions for the PC 10, and therefore cangenerate transactions on the USB interface. As will be described later,one of the characteristics of the present invention resides in thesequence of these three devices providing the functions on the OS 11.The keyboard device 31 and the storage device 32 are connected to theUSB/hub controller 33 via hub ports 35 and 36 that are USB buses.

The keyboard device 31 includes hardware and software that constitute akeyboard. The keyboard device 31 is put in an enable state or a disablestate, in accordance with a keyboard enabling control signal 38outputted from the hub device 34. In an enable state, the keyboarddevice 31 can be operated. In a disable state, the connection with thekeyboard device 31 cannot be recognized on the USB interface. An exampleof a disable state of the keyboard device 31 will be described later.The keyboard enabling control signal 38 is a signal transmitted througha dedicated signal line that is provided separately from the USB ports35 and 36, and is connected to a general input/output terminal or anexternal interrupt terminal of the keyboard device 31. When the level ofthe keyboard enabling control signal 38 is high, the keyboard device 31is in an enable state. When the level of the keyboard enabling controlsignal 38 is low, the keyboard device 31 is in a disable state. When thekeyboard device 31 is put in an enable state, the connection state isoutputted to the hub port 35 in accordance with the standard USBspecification. A specific example structure of the keyboard device 31will be described later.

The storage device 32 includes hardware and software for providing astoring function. A keyboard driver is stored in this storage device 32.In accordance with a sequence that will be described later, the keyboarddriver is read from the storage device 32, and is then incorporated intothe OS 11 as the keyboard driver 12. The device driver of the storagedevice 32 is incorporated into the OS 11 as the storage device driver 13in advance. A specific example structure of the storage device 32 willbe described later.

The USB/hub controller 33 has hardware and software for supporting theUSB and hub. The USB/hub controller 33 includes the hub device 34. Thehub device 34 is an internal program that operates on a program forcontrolling the hub, and functions as a USB in this embodiment. The hubdevice 34 monitors the state of the USB cable 18, and outputs thekeyboard enabling controlling signal 38 to the keyboard device 31. Here,a “hub” refers to a concentrator provided in accordance with thestandard USB specification, and controls transactions among the keyboarddevice 31, the storage device 32, and a USB cable (or a USB bus or a USBinterface) in the structure shown in FIG. 4. The USB/hub controller 33connects the keyboard device 31 and the storage device 32 in accordancewith the standard USB specification. A specific example structure of theUSB/hub controller 33 will be described later.

Referring now to FIGS. 5A and 5B, the operation according to the firstembodiment will be described. FIG. 5A shows the operation sequence ofthe USB device 30, and FIG. 5B shows the operation sequence of the PC10.

In steps S11 and S21, the USB device 30 is connected to the PC 10 viathe USB cable 18. More specifically, the connector of the PC 10 isconnected to the connector of the USB device 30 with the USB cable 18.By this connection, a power source is supplied from the PC 10 to the USBdevice, and the USB/hub controller 33 starts operating. Immediatelyafter the start of the operation, in step S12, the USB/hub controller 33sets the keyboard enabling control signal 38 at the low level, so thatthe keyboard device 31 is put in a disable state. Accordingly, thekeyboard device 31 cannot function until being put in an enable state.In step S22, the PC 10 recognizes the connection made in step S21, andthe hub driver 27 installed in the OS 11 starts operating so as to set ahub configuration. In step S13, a hub configuration is also set in theUSB device 30, so that the hub of the USB/hub controller 33 and the hubdevice 34 start functioning.

In step S14, the hub device 34, which has started operating, detects acurrently connected device (or a function) in accordance with the hubstipulation in the standard USB specification. At this point, thestorage device 32 is in an enable state, and the keyboard device 31 isin a disable state. Accordingly, the hub device 34 detects that thestorage device 32 is the currently connected peripheral device. In stepS23, the USB host controller 14 of the PC 10 detects that the storagedevice 32 is connected to the USB cable 18. In step S24, theconfiguration of the storage device 32 is established with the storagedevice driver 13 installed in the OS 11. In step S25, the storage deviceis mounted as a peripheral device for the PC 10. Accordingly, thestorage device 32 provides a new disk drive on the PC 10.

In step S15, the USB/hub controller 33 of the USB device 30 determineswhether the storage device 32 has started operating. When the mountingof the storage device 32 is completed in step S25, the determinationresult of step S15 becomes “YES”. In step S16, the hub device 34, whichhas received the determination result of “YES”, switches the keyboardenabling control signal 38 from the low level to the high level, so thatthe keyboard device 31 is switched from a disable state to an enablestate. Thus, the keyboard device 31 starts operating. In step S17, thekeyboard device 31 is connected to the USB cable 18 via the hub port 35and the USB/hub controller 33.

In step S26, the USB host controller 14 of the PC 10 detects theconnection of an unknown keyboard. The USB host controller 14 then readsa descriptor, which is the information showing the characteristics ofthe keyboard device 31, from the keyboard device 31, and transfers theinformation to the OS 11. The OS 11 specifies the driver of the keyboarddevice 31, and checks whether the driver is stored in a storage devicesuch as a HDD in the PC 10. In this embodiment, the PC 10 is notprovided with a keyboard driver. Therefore, the OS 11 accesses thestorage device 32 that is recognized as an external disk drive. Thestorage device 32 holds the driver of the keyboard device 31. In stepS27, the OS 11 reads the driver from the storage device 32, and installsthe driver as the keyboard driver 12. In step S28, a keyboardconfiguration is established. In steps S18 and S29, the keyboard of thekeyboard device 31 is put in an operating state. Thus, in steps S19 andS30, the USB device 30 is put in an operation state, being able toprovide the disk drive function and keyboard function.

As described above, in accordance with the first embodiment of thepresent invention, the storage device 32 that can be recognized on theUSB interface is installed as well as the keyboard device 31 in the USBdevice 30. When the USB device 30 is connected, the hub device 34 (or aperipheral engine 65 described later) makes the driver readable,starting the operation of the storage device 32 first (i.e., putting thekeyboard device 31 in a disable state). In other word, the hub device 34makes the keyboard device 31 recognizable after the storage device 32 isrecognized. With this structure, even if the keyboard driver 12 does notexist on the OS 11, a keyboard driver can be automatically incorporatedinto the OS 11, without a CD-ROM device or a flexible magnetic diskdevice. Also, even if a CD-ROM device or a flexible magnetic disk deviceis provided, this structure does not need either of them in installing akeyboard driver in the OS 11. Accordingly, when a user installs adriver, all he/she has to do is to connect the USB device 30 to the PC10 to start operating the USB device 30, with no regard to which storageunit the driver is stored in. Thus, the user can start a desiredoperation immediately after the single connecting action.

FIG. 6 is a block diagram of an example structure of the keyboard device31. The keyboard device 31 is a function (a peripheral device) on a USBinterface, and includes an MCU (Micro Control Unit) 41, a keyboardmatrix 42, and a port 43 for connecting the MCU 41 and the keyboardmatrix 42. The MCU 41 includes a matrix scanner 44, a RAM 45, aninterface engine 46, a peripheral engine 47, a ROM 48, and a dataanalysis engine 49.

The keyboard matrix 42 is a mechanism containing a plurality of keysarranged in a matrix-like state. The matrix scanner 44 is the scan logicessential for the function of the keyboard, and scans the keyboardmatrix 42 so as to check the ON/OFF state of each key. The keyboardmatrix 42 is connected to the peripheral engine 47 via the port 43. Akeyboard enabling control signal 38 is supplied from the hub device 34to the peripheral engine 47 via a general-purpose input/output port oran external interrupt terminal. The keyboard enabling control signal 38can have any form, as long as the MCU 41 can detect its level (the highor low level). When the level of the keyboard enabling control signal 38is high, the keyboard device 31 is in an enable state, being able tooperate. When the level of the keyboard enabling control signal 38 islow, the keyboard device 31 is in a disable state, being unable tooperate. The data analysis engine 49 obtains key data from the matrixscanner 44 and the peripheral engine 47, and also checks the level ofthe keyboard enabling control signal 38 to determine whether anoperation is allowed. In short, the data analysis engine 49 controls theentire MCU 41.

The interface engine 46 provides an interface for connecting thekeyboard device 31 to the outside. The interface engine 46 monitors andcontrols the connection state, and also controls all transactions via anexternal bus interface (equivalent to the USB cable 18). When the levelof the keyboard enabling control signal 38 is high, the data analysisengine 49 allows the interface engine 46 and the matrix scanner 44 tooperate. When the level of the keyboard enabling control signal 38 islow, the data analysis engine 49 prohibits the interface engine 46 andthe matrix scanner 44 from operating. To detect the level of thekeyboard enabling control signal 38, the peripheral engine 47 is inoperation even when the keyboard device 31 is in a disable state. Thedata analysis engine 49 receives the key state data from the matrixscanner 44 while allowing the interface engine 46 to operate, andoutputs the key state data to the outside through the interface engine46. The data analysis engine 49 also receives data from the outsidethrough the interface engine 46, and performs suitable operations forthe contents of the data. The matrix scanner 44, the data analysisengine 49, and the interface engine 46 operate on the ROM 48 or the RAM45 in the MCU 41, or on a ROM or a RAM externally connected to the MCU41. All the data required by the matrix scanner 44, the peripheralengine 47, and the data analysis engine 49 are stored in the ROM 48 orthe RAM 45 in the MCU 41, or in a ROM or a RAM externally connected tothe MCU 41.

FIG. 7 is a block diagram of an example structure of the storage device32. The storage device 32 is a function (a peripheral device) on the USBinterface, and includes a MCU (Micro Control Unit) 51, a non-volatilestorage unit 52, and a port 53 for connecting the MCU 51 and thenon-volatile storage unit 52. The MCU 51 includes a file system engine54, a RAM 55, an interface engine 56, a peripheral engine 57, a ROM 58,and a data analysis engine 59.

The non-volatile storage unit 52 is formed by a non-volatile memory,such as a flash ROM or FeRAM, and is controlled by the MCU 51. Thedriver of the keyboard device 31 is stored in the non-volatile storageunit 52. The non-volatile storage unit 52 is connected to the peripheralengine 57 in the MCU 51 via the port 53, and appears to be an externallyconnected RAM or ROM, or an internal RAM or ROM, seen from the side ofthe MCU 51. Regardless of the existence of the RAM 55 and the ROM 58installed in the MCU 51, the non-volatile storage unit 52 operates as avalid disk drive for the external bus interface 18. Therefore, the filesystem engine 54, which manages the contents of the non-volatile storageunit 52 as files, is mounted on the MCU 51. There are various ways ofmanaging the memory contents. In a case where a file located in the PC10 is to be stored in the storage device 32, the non-volatile storageunit 52 manages information of: at which position in the memory of thestorage device 32 the memory contents corresponding to the contents ofthe file should be recorded; at which position in the memory of thestorage device 32, the information, which indicates that the recordedcontents are the same as the contents of the file, such as the file nameand the time stamp, should be recorded; and which recording means shouldbe used for the recording. A request for reading and writing a file isissued to the interface engine 56 of the MCU 51 through the hub port 36.The data analysis engine 59 examines the contents of the request, andcontrols the file system engine 54 and the peripheral engine 57.

FIG. 8 is a block diagram of an example structure of a hub controller133 of the USB/hub controller 33. The hub controller 133 includes a dataanalysis engine 61, a RAM 62, an interface engine 63, a hub interfaceengine 64, a peripheral engine 65, and a ROM 66. The hub device 34 ofFIG. 4 is embodied in the peripheral engine 65.

The hub ports 35 and 36 are connected to the hub interface engine 64.The hub interface engine 64 performs the establishment of the hubconfiguration of step S13 in the flowchart of FIG. 5A. The USB cable 18is connected to the interface engine 63. The data analysis engine 61analyzes data and signals received via the hub ports 35 and 36 and theUSB cable 18, and controls the entire hub controller 133. The peripheralengine 65 generates and outputs the keyboard enabling control signal 38in accordance with an instruction from the data analysis engine 61. Whenthe USB device 30 is connected in step S11 in the flowchart of FIG. 5A,the interface engine 63 notifies the data analysis engine 61 of theconnection. Receiving the notice of the connection, the peripheralengine 65 sets the keyboard enabling control signal 38 at the low level.The RAM 62 functions as a work memory for each engine. The program anddata of the operation of each engine are stored in the ROM 66.

(Second Embodiment)

FIG. 9 illustrates a structure according to a second embodiment of thepresent invention. In this figure, the same components as the componentsof the first embodiment are denoted by like reference numerals. A USBdevice 130 is connected to a PC 10 via a USB cable 18. The USB device130 differs from the above described USB device 30 in that a storagedevice 32A generates a keyboard enabling control signal 38, and outputsthe signal 38 to a keyboard device 31. In other words, the controloperations of steps S12 and S16 in the flowchart of FIG. 5A areperformed by the storage device 32A. Accordingly, a hub device 34Ainstalled in a USB/hub controller 33A does not have a function togenerate the keyboard enabling control signal 38, and therefore can be ageneral-purpose hub.

FIG. 10 is a block diagram of an example structure of the storage device32A. In this figure, the same components as the components shown in FIG.7 are denoted by like reference numerals. The storage device 32A isprovided with a peripheral engine 57A having a function of generatingthe keyboard enabling control signal 38 in addition to the structure ofthe peripheral engine 57 shown in FIG. 7. A data analysis engine 59Aalso differs from the data analysis engine 59 shown in FIG. 7.

The data analysis engine 59A determines whether the storage device 32Ahas started operating as a storage device on the external bus interface18. After confirming that the storage device 32A has started operatingas a storage device, the data analysis engine 59A controls theperipheral engine 57A to handle the keyboard enabling control signal 38.

FIG. 11 is a block diagram of an example structure of a hub controller133A of the USB/hub controller 33A shown in FIG. 9. In this figure, thesame components as the components shown in FIG. 8 are denoted by likereference numerals. A peripheral engine 65A shown in FIG. 11 differsfrom the peripheral engine 65 shown in FIG. 8 in not having a functionto generate the keyboard enabling control signal 38.

As described above, according to the second embodiment of the presentinvention, the storage device 32A that can be recognized as well as thekeyboard device 31 on a USB interface is provided in the USB device 130.When the USB device 130 is connected, the peripheral engine 57Ainstalled in the storage device 32A first starts the operation of thestorage device 32A, so that the driver becomes readable. Even if thekeyboard driver 12 does not exist in the OS 11, a keyboard driver can beautomatically incorporated into the OS 11, without a CD-ROM device or aflexible magnetic disk device. Also, even if a CD-ROM device or aflexible magnetic disk device is provided, this structure does not needeither of them in installing a keyboard driver in the OS 11.Accordingly, when a user installs a driver, all he/she has to do is toconnect the USB device 130 to the PC 10 to start using the USB device130, with no regard to which storage unit the driver is stored in. Thus,the user can start a desired operation immediately after the singleconnecting action.

(Third Embodiment)

FIG. 12 illustrates a structure according to a third embodiment of thepresent invention. In this figure, the same components as the componentsof the foregoing embodiments are denoted by like reference numerals. AUSB device 230 is connected to a PC 10 via a USB cable 18. The USBdevice 230 differs from the USB device 130 of the second embodiment inthat a storage device 32B provided with a function to generate akeyboard enabling control signal 38 is installed in a USB/hub controller33B. In other words, a storage function is formed as an internalfunction of a hub controller that can be recognized on a USB. Thestorage device 32B generates and outputs the keyboard enabling controlsignal 38 to a keyboard device 31 via a dedicated signal line.

FIG. 13 is a block diagram of an example structure of a hub controller133B in the storage device 32B and the USB/hub controller 33B. In thisfigure, the same components as the components of the foregoingembodiments are denoted by like reference numerals. As shown in FIG. 13,the storage device 32B and the hub controller 133B shares a dataanalysis engine 59. By doing so, the storage device 32B is incorporatedinto the hub controller 133B. In the first embodiment of the presentinvention, the configuration state of the hub port 36 to which thestorage device 32 is connected is read from the hub controller 133 so asto control the keyboard enabling control signal 38. On the other hand,the storage device 32B shown in FIG. 13 is configured, and, after astart of an operation as a storage device, i.e., a disk drive, isdetected, the peripheral engine 65 of the hub controller 133B isoperated to output the keyboard enabling control signal 38 to thekeyboard device 31. In this manner, the storage device 32B functions asa peripheral device that operates within the hub controller 133B.

As described above, in accordance with the third embodiment of thepresent invention, the storage device 32B that can be recognized as wellas the keyboard device 31 on a USB interface is provided in the USBdevice 230. When the USB device 230 is connected, the peripheral engine65 installed in the USB/hub controller 33B first starts the operation ofthe storage device 32B, so that the driver becomes readable. Even if thekeyboard driver 12 does not exist in the OS 11, a keyboard driver can beautomatically incorporated into the OS 11, without a CD-ROM device or aflexible magnetic disk device. Also, even if a CD-ROM device or aflexible magnetic disk device is provided, this structure does not needeither of them in installing a keyboard driver in the OS 11.Accordingly, when a user installs a driver, all he/she has to do is toconnect the USB device 230 to the PC 10 to start using the USB device230, with no regard to which storage unit the driver is stored in. Thus,the user can start a desired operation immediately after the singleconnecting action.

(Fourth Embodiment)

FIG. 14 illustrates a structure according to a fourth embodiment of thepresent invention. In this figure, the same components as the componentsof the foregoing embodiments are denoted by like reference numerals. AUSB device 330 includes a multi function controller 70. The multifunction controller 70 further includes a keyboard device 31A and astorage device 32C. Accordingly, the keyboard device 31A and the storagedevice 32C exist as a physical device in the multi function controller70. The keyboard device 31A is connected to a USB host controller 14 viaa USB cable 18A, and the storage device 32C is connected to the USB hostcontroller 14 via a USB cable 18B. The storage device 32C outputs akeyboard enabling control signal 38 to the keyboard device 31A.

FIG. 15 is a block diagram of an example structure of the keyboarddevice 31A. In this figure, the same components as the components of theforegoing embodiments are denoted by like reference numerals. Thekeyboard device 31A includes a keyboard matrix 42, a matrix scanner 44,and a data analysis engine 49. The multi function controller 70 includesa RAM 72, an interface engine 73, a peripheral engine 74, and a ROM 75.These components also serve as the components of the keyboard device31A, and, as a whole, the same structure and functions as the keyboarddevice 31 shown in FIG. 6 are embodied in this structure. In thestructure of the keyboard device 31 shown in FIG. 6, the keyboardenabling control signal 38 is provided by hardware connection of asignal line. On the other hand, in the keyboard device 31A shown in FIG.15, the keyboard enabling control signal 38 is a memory status developedin the RAM 72. This memory status is formed by one bit, and is stored ata predetermined address. Such a memory status is handled by the storagedevice 32C. The keyboard device 31A checks the memory status in the RAM72 so as to switch to an enable state or a disable state. The RAM 72,the interface engine 73, the peripheral engine 74, and the ROM 75 arethe same as the corresponding components shown in FIG. 6.

FIG. 16 is a block diagram of an example structure of the storage device32C. In this figure, the same components as the components of theforegoing embodiments are denoted by like reference numerals. Thestorage device 32C includes a non-volatile storage unit 52, a filesystem engine 54, and a data analysis engine 59. The RAM 72, theinterface engine 73, the peripheral engine 74, and the ROM 75 of themulti function controller 70 also serve as components of the storagedevice 32C. In other words, these components 72 through 75 are sharedbetween the keyboard device 31A and the storage device 32C. Thefunctions of the storage device 32C are the same as the functions of thestorage device 32B shown in FIG. 13. However, the keyboard enablingcontrol signal 38 is determined by setting the level of the port of thekeyboard device 31 at the high or low level in the structure shown inFIG. 13. In the structure shown in FIG. 16, on the other hand, the dataanalysis engine 59 writes “1” or “0” in the 1-bit memory state in theRAM 72. When starting an operation as a disk drive, the storage device32C writes “1” in the RAM 72. The data analysis engine 49 of thekeyboard device 31A reads the 1 bit of the memory status, and switchesthe keyboard device 31A to an enable state.

As described above, in accordance with the fourth embodiment of thepresent invention, the storage device 32C that can be recognized as wellas the keyboard device 31A on a USB interface is provided in the multifunction controller. When the USB device 330 is connected, thepredetermined memory status in the RAM 72 provided in the multi functioncontroller 70 is defined as a means to start the operation of thestorage device 32C so as to make the driver readable. The memory statusbit functions to delay the recognition of a device other than thestorage device 32C by the hub, specifically, the recognition of thekeyboard device 31A by the hub. Accordingly, even if the keyboard driver12 does not exist in the OS 11, a keyboard driver can be automaticallyincorporated into the OS 11, without a CD-ROM device or a flexiblemagnetic disk device. Also, even if a CD-ROM device or a flexiblemagnetic disk device is provided, this structure does not need either ofthem in installing a keyboard driver in the OS 11. Accordingly, when auser installs a driver, all he/she has to do is to connect the USBdevice 330 to the PC 10 to start using the USB device 330, with noregard to which storage unit the driver is stored in. Thus, the user canstart a desired operation immediately after the single connectingaction.

FIG. 17 illustrates a structure that sums up the structures shown inFIGS. 15 and 16. A device 1 denoted by reference numeral 79 isequivalent to the keyboard device 31A, and a device 2 denoted byreference numeral 80 is equivalent to the storage device 32C.

(Fifth Embodiment)

FIG. 18 illustrates a structure according to a fifth embodiment of thepresent invention. In this figure, the same components as the componentsof the foregoing embodiments are denoted by like reference numerals. AUSB device 430 includes a keyboard device 31 and a storage device 32A.The keyboard device 31 and the storage device 32A exist as separatephysical devices in the USB device 430. The USB device 430 is notprovided with a hub function. The keyboard device 31 is connected to aUSB host controller 14 via a USB cable 18A, and the storage device 32Ais connected to the USB host controller 14 via a USB cable 18B. Thestorage device 32 outputs a keyboard enabling control signal 38 to thekeyboard device 31. The keyboard device 31 has the same structure as thestructure shown in FIG. 6, and the storage device 32A has the samestructure as the structure shown in FIG. 10. The operations of thekeyboard device 31 and the storage device 32A are also the same as theoperations described with respect to the foregoing embodiments.

It should be noted that a hub driver of the USB device 430 is notincorporated into the OS 11 of the PC 10.

(Sixth Embodiment)

FIG. 19 illustrates a structure according to a sixth embodiment of thepresent invention. In this figure, the same components as the componentsof the foregoing embodiments are denoted by like reference numerals. AUSB 530 is a modification of the USB device 30 shown in FIG. 4. In FIG.4, the hub device 34 supplies the keyboard enabling control signal 38 tothe keyboard device 31, using a signal line different from the hub port35. In the structure shown in FIG. 19, on the other hand, a hub device34B supplies the keyboard enabling control signal 38 to a keyboarddevice 31B through the hub port 35. This signal supply is performed bythe hub device 34B maintaining the hub port 35 in the “reset state”specified in the standard USB specification.

FIG. 20 is a block diagram of an example structure of the keyboarddevice 31B. In this figure, the same components as the components shownin FIG. 6 are denoted by like reference numerals. In the structure shownin FIG. 6, the peripheral engine 47 receives the keyboard enablingcontrol signal 38 via a dedicated signal line. In the structure shown inFIG. 20, on the other hand, a peripheral engine 47A does not have such afunction as to receive the keyboard enabling control signal 38. Instead,an interface engine 46 receives the keyboard enabling control signal 38transmitted through the hub port 35.

FIG. 21 is a block diagram of an example structure of the hub device 34Bprovided in a hub controller that constitutes a USB/hub controller 33C.In this figure, the same components as the components shown in FIG. 11are denoted by like reference numerals. A hub interface engine 64Acontrols the hub port 35, and outputs the keyboard enabling controlsignal 38 to the keyboard device 31B.

As described above, in accordance with the sixth embodiment of thepresent invention, the storage device 32 that can be recognized as wellas the keyboard device 31B on a USB interface is provided in the USBdevice 530. When the USB device 530 is connected, the hub interfaceengine 64A installed in the hub controller 133C starts the operation ofthe storage device 32 so as to make the driver readable. Even if thekeyboard driver 12 does not exist in the OS 11, a keyboard driver can beautomatically incorporated into the OS 11, without a CD-ROM device or aflexible magnetic disk device. Also, even if a CD-ROM device or aflexible magnetic disk device is provided, this structure does not needeither of them in installing a keyboard driver in the OS 11.Accordingly, when a user installs a driver, all he/she has to do is toconnect the USB device 530 to the PC 10 to start using the USB device530, with no regard to which storage unit the driver is stored in. Thus,the user can start a desired operation immediately after the singleconnecting action.

(Seventh Embodiment)

FIG. 22 is a block diagram of a structure according to a seventhembodiment of the present invention. In this figure, the same componentsas the components of the foregoing embodiments are denoted by likereference numerals. A USB device 630 is a modification of the USB device230 shown in FIG. 12. In FIG. 12, the storage device 32B supplies thekeyboard enabling control signal 38 to the keyboard device 31, using adedicated signal line different from the hub port 35. In the structureshown in FIG. 22, on the other hand, a storage device 32D provided in aUSB/hub controller 33D supplies the keyboard enabling control signal 38to a keyboard device 31B through the hub port 35.

FIG. 23 is a block diagram of an example structure of the storage device32D and a hub controller 133D provided in the USB/hub controller 33D. Inthis figure, the same components as the components of the foregoingembodiments are denoted by like reference numerals. A hub interfaceengine 64C outputs the keyboard enabling control signal 38 to thekeyboard device 31B through the hub port 35. Accordingly, a peripheralengine 65A in the hub controller 133D differs from the peripheral engine65 shown in FIG. 13 in not having a function to output the keyboardenabling control signal 38. The storage device 32D includes anon-volatile storage unit 52, a file system engine 54, and a dataanalysis engine 59. The hub controller 133D shares its components withthe storage device 32D.

As described above, in accordance with the seventh embodiment of thepresent invention, the storage device 32D that can be recognized as wellas the keyboard device 31B on a USB interface is provided in the USBdevice 630. When the USB device 630 is connected, the hub interfaceengine 64C starts the operation of the storage device 32D so as to makethe driver readable. Even if the keyboard driver 12 does not exist inthe OS 11, a keyboard driver can be automatically incorporated into theOS 11, without a CD-ROM device or a flexible magnetic disk device. Also,even if a CD-ROM device or a flexible magnetic disk device is provided,this structure does not need either of them in installing a keyboarddriver in the OS 11. Accordingly, when a user installs a driver, allhe/she has to do is to connect the USB device 630 to the PC 10 to startusing the USB device 630, with no regard to which storage unit thedriver is stored in. Thus, the user can start a desired operationimmediately after the single connecting action.

(Eighth Embodiment)

FIG. 24 is a block diagram of a structure according to an eighthembodiment of the present invention. In this figure, the same componentsas the components of the foregoing embodiments are denoted by likereference numerals. A USB device 730 is a modification of the USB device330 shown in FIG. 14. In the structure shown in FIG. 14, the USB device330 is connected to the PC 10 with the two USB cables 18A and 18B. Inthe structure shown in FIG. 24, on the other hand, the USB device 730 isconnected to the PC 10 with one USB cable 18. This embodiment is validin a case where two or more devices (functions) are allowed to form fromone controller with one USB cable in accordance with the standard USBspecification.

FIG. 25 illustrates the structure of the multi function controller 70shown in FIG. 24. The structure shown in FIG. 25 differs from thestructure shown in FIG. 17 in that only one USB cable is employed.

In accordance with the first through eighth embodiments described sofar, the driver in the storage device 32, 32A, 32B, 32C, or 32D isupdated, so that the updated driver can be installed in the OS 11. To doso, the information processing apparatus 10 writes the new driver in thestorage device 32, 32A, 32B, 32C, or 32D. At the time of updating, acommand data transaction is generated on the USB cable 18, 18A, or 18B.This process is carried out by the USB/hub controller 33, 33A, 33B, 33C,or 33D. In accordance with the command data, the information processingapparatus 10 is notified that the driver has been updated. The keyboardenabling control signal 38 is then set at the low level, so as to putthe keyboard device 31, 31A, or 31B into a disable state. The keyboarddriver 12 then vanishes from the memory under the control of the OS 11.Beyond this point, the updated keyboard driver is incorporated into theOS 11 in the same manner as the processing of step S12 of FIG. 5A.Accordingly, a reconnected state of the keyboard device 31, 31A, or 31Bcan be achieved without a mechanical connection thereof, and moredynamic updating can be performed on the driver.

The first through eighth embodiments are USB devices each equipped witha keyboard device. The present invention, however, is not limited tothem, and may provide a USB device equipped with any electronic deviceother than a keyboard device. In this case, the driver of the electronicdevice is stored in the storage device. Also, each of the USB devices ofthe above described embodiments may be equipped with a plurality ofdevices. In such a case, the drivers for the plurality of devices arestored in the storage device.

Further, the present invention does not limit the interface to a USB,but may allow an electronic device to employ some other interface, suchas a parallel interface, a serial interface, or an IEEE 1394 interface.The present invention also provides an electronic device having one ofthose interfaces in addition to a USB interface. The present inventionfurther provides an electronic device that employs a wireless interfaceas well as a cable interface.

Finally, some aspects of the present invention are summarized below.

According to an aspect of the invention, an electronic device includes:a first device; a second device in which a driver of the first device isstored, the first device and second device being able to generatetransactions on an interface shared for respective external connections;and a unit that starts an operation of the second device before startingan operation of the first device, so as to make the driver readable fromthe second device via the interface. When the electronic device isconnected to an information processing device such as a personalcomputer, the unit causes the second device to start. This makes itpossible the driver to be read on the interface from the second device.Thus, the driver can be installed in the information processing device.If it is supposed that the above-mentioned unit is not employed, thefirst and second devices can generate transactions on the interfaceshared for the respective external connections, and connections with thefirst and second devices will be simultaneously recognized. In thiscase, the information processing device will request the driver for thefirst device. In contrast, according to the aspect of the presentinvention, connection with the second device that stores the driver ofthe first device is recognized first without exception. This results inavoidance of the above-mentioned situation.

The electronic device may be configured so that the unit controls thefirst device to be in a disable state and then switch to an enablestate. When the electronic device is connected to the informationprocessing device, it is assured that only the second device isconnected to the interface. It is therefore possible to assure that onlythe second device is connected to the interface when being connected tothe information processing device and to read the driver of the firstdevice on the interface and install it in the information processingdevice.

The electronic device may be configured so that the unit generates acontrol signal for controlling the first device to be in an enable stateor a disable state, and outputs the control signal to the first devicethrough a dedicated signal line. It is therefore possible to assure thatonly the second device is connected to the interface when beingconnected to the information processing device and read the driver ofthe first device on the interface and install it in the informationprocessing device.

The electronic device may be configured so that the unit puts the firstdevice in a disable state when the electronic device is connected to aninformation processing apparatus via the interface, and puts the firstdevice in an enable state when the second device is recognized by theinformation processing apparatus. It is therefore possible to assurethat only the second device is connected to the interface when beingconnected to the information processing device and read the driver ofthe first device on the interface and install it in the informationprocessing device.

The electronic device may be configured so that the unit has a memoryfor storing control data used for controlling the first device to be inan enable state or a disable state. This configuration is employed in,for example, the fourth embodiment of the invention. According to theconfiguration, it is therefore possible to assure that only the seconddevice is connected to the interface when being connected to theinformation processing device and read the driver of the first device onthe interface and install it in the information processing device.

The electronic device may be configured so that it further comprises ahub controller that controls transactions among the first device, thesecond device, and the interface, the unit being provided within the hubcontroller. This configuration is employed in, for example, the first,second, third, sixth and seventh embodiments of the present invention.

The electronic device may be configured so that it further includes ahub controller that controls transactions among the first device, thesecond device, and the interface, the unit being provided within thesecond device. This configuration is employed in, for example, the thirdand seventh embodiments of the present invention.

The electronic device may be configured so that it further includes ahub controller that controls transactions among the first device, thesecond device, and the interface, the second device being providedwithin the hub controller, and including the unit, and the unitgenerating a control signal for controlling the first device to be in anenable state or a disable state, and outputting the control signal tothe first device through a dedicated signal line. This configuration isemployed in, for example, the third embodiment of the present invention.

The electronic device may be configured so that it further includes ahub controller that controls transactions among the first device, thesecond device, and the interface, the second device being providedwithin the hub controller, and including the unit; the unit generating acontrol signal for controlling the first device to be in an enable stateor a disable state, and outputting the control signal to the firstdevice through a hub port provided between the first device and theinterface. This configuration is employed in, for example, the seventhembodiment of the present invention.

The electronic device may be configured so that the unit is providedwithin the second device. This configuration is employed in, forexample, the fifth embodiment of the present invention.

The electronic device may be configured so that it further includes ahub controller that controls transactions among the first device, thesecond device, and the interface, the hub controller including the unit;the unit generating a control signal for controlling the first device tobe in an enable state or a disable state, and outputting the controlsignal to the first device through a hub port provided between the firstdevice and the interface. This configuration is employed in, forexample, the sixth embodiment of the present invention.

The electronic device may be configured so that: the first device andthe second device can be connected to an outside information processingapparatus via separate buses that constitute the interface; and thesecond device includes the unit. This configuration is employed in thefourth and fifth embodiments of the invention.

The electronic device may be configured so that it further includes acontroller that controls the first device and the second device as asingle physical device, the second device including the unit. Thisconfiguration is employed in the fourth embodiment of the presentinvention.

The electronic device may be configured so that it further includes acontroller that controls the first device and the second device as asingle physical device, the first device and the second device beingconnectable to an outside information processing apparatus via separatebuses that constitute the interface, and the second device including theunit. This configuration is employed in the fourth embodiment of thepresent invention.

The electronic device may be configured so that it further includes acontroller that controls the first device and the second device as asingle physical device, the first device and the second device beingconnectable to an outside information processing apparatus via a commonbus that constitutes the interface, and the second device including theunit. This configuration is employed in, the eighth embodiment of theinvention.

The electronic device may be configured so that the unit controls thefirst device so as to switch from an enable state to a disable state,when the driver of the first device is updated. Thus, the first deviceis put in the isolated state, while the updated driver in the seconddevice can be read onto the interface and the driver of the first devicecan be updated.

The electronic device may be configured so that the second deviceincludes a non-volatile storage unit for storing the driver.

Although a few preferred embodiments of the present invention have beenshorn and described, it would be appreciated by those skilled in the artthat changes may be made in these embodiments without departing from theprinciples and spirit of the invention, the scope of which is defined inthe claims and their equivalents.

1. An electronic device, comprising: a first device; a second device inwhich a driver of the first device is stored, the first device andsecond device being able to generate transactions on an interface sharedfor respective external connections; and a unit that starts an operationof the second device before starting an operation of the first device,so as to make the driver readable from the second device via theinterface, the unit, further, controlling the first device to be in adisable state and then to switch to an enable state before the driver isread from the second device and is installed to a computer to which theelectronic device is connected.
 2. The electronic device as claimed inclaim 1, wherein the unit generates a control signal for controlling thefirst device to be in an enable state or a disable state, and outputsthe control signal to the first device through a dedicated signal line.3. The electronic device as claimed in claim 1, wherein the unit putsthe first device in a disable state when the electronic device isconnected to an information processing apparatus via the interface, andputs the first device in an enable state when the second device isrecognized by the information processing apparatus.
 4. The electronicdevice as claimed in claim 1, wherein the unit has a memory for storingcontrol data used for controlling the first device to be in an enablestate or a disable state.
 5. An electronic device, comprising: a firstdevice; a second device in which a driver of the first device is stored,the first device and the second device being able to generatetransactions on an interface shared for respective external connections;a hub controller that controls transactions among the first device, thesecond device, and the interface; and a unit within the hub controllerthat starts an operation of the second device before starting anoperation of the first device, so as to make the driver readable fromthe second device via the interface, the unit, further, controlling thefirst device to be in a disable state and then to switch to an enablestate before the driver is read from the second device and is installedto a computer to which the electronic device is connected.
 6. Anelectronic device, comprising: a first device; a second device in whicha driver of the first device is stored, the first device and the seconddevice being able to generate transactions on an interface shared forrespective external connections; a hub controller that controlstransactions among the first device, the second device, and theinterface; and a unit within the second device that starts an operationof the second device before starting an operation of the first device,so as to make the driver readable from the second device via theinterface, the unit, further, controlling the first device to be in adisable state and then to switch to an enable state before the driver isread from the second device and is installed to a computer to which theelectronic device is connected.
 7. An electronic device, comprising: afirst device; a second device in which a driver of the first device isstored, the first device and second device being able to generatetransactions on an interface shared for respective external connections;a unit that starts an operation of the second device before starting anoperation of the first device, so as to make the driver readable fromthe second device via the interface; a hub controller that controlstransactions among the first device, the second device, and theinterface, the second device being provided within the hub controllerand including the unit; and the unit generating a control signal forcontrolling the first device to be in an enable state or a disable stateand to switch the first device from the disable state to the enablestate before the driver is read from the second device and is installedto a computer to which the electronic device is connected, andoutputting the control signal to the first device through a dedicatedsignal line.
 8. An electronic device, comprising: a first device; asecond device in which a driver of the first device is stored, the firstdevice and second device being able to generate transactions on aninterface shared for respective external connections; a unit that startsan operation of the second device before starting an operation of thefirst device, so as to make the driver readable from the second devicevia the interface; a hub controller that controls transactions among thefirst device, the second device, and the interface, the second devicebeing provided within the hub controller and including the unit; and theunit generating a control signal for controlling the first device to bein an enable state or a disable state and to switch the first devicefrom the disable state to the enable state before the driver is readfrom the second device and is installed to a computer to which theelectronic device is connected, and outputting the control signal to thefirst device through a hub port provided between the first device andthe interface.
 9. The electronic device as claimed in claim 1, whereinthe unit is provided within the second device.
 10. The electronic deviceas claimed in claim 1, further comprising a hub controller that controlstransactions among the first device, the second device, and theinterface, the hub controller including the unit; the unit generating acontrol signal for controlling the first device to be in an enable stateor a disable state, and outputting the control signal to the firstdevice through a hub port provided between the first device and theinterface.
 11. The electronic device as claimed in claim 1, wherein: thefirst device and the second device can be connected to an outsideinformation processing apparatus via separate buses that constitute theinterface; and the second device includes the unit.
 12. The electronicdevice as claimed in claim 1, further comprising a controller thatcontrols the first device and the second device as a single physicaldevice, the second device including the unit.
 13. The electronic deviceas claimed in claim 1, further comprising a controller that controls thefirst device and the second device as a single physical device, thefirst device and the second device being connectable to an outsideinformation processing apparatus via separate buses that constitute theinterface, and the second device including the unit.
 14. The electronicdevice as claimed in claim 1, further comprising a controller thatcontrols the first device and the second device as a single physicaldevice, the first device and the second device being connectable to anoutside information processing apparatus via a common bus thatconstitutes the interface, and the second device including the unit. 15.The electronic device as claimed in claim 1, wherein the unit controlsthe first device so as to switch from an enable state to a disablestate, when the driver of the first device is updated.
 16. Theelectronic device as claimed in claim 1, wherein the second deviceincludes a non-volatile storage unit for storing the driver.
 17. Amethod of controlling an electronic device that includes a first deviceand a second device storing a driver of the first device, and cangenerate transactions on an interface shared for external connection,the method comprising: starting an operation of the second device beforean operation of the first device, so as to make the driver readable fromthe second device via the interface; and controlling the first device tobe in a disable state and then to switch to an enable state before thedriver is read from the second device and is installed to a computer towhich the electronic device is connected.
 18. A system, comprising: anelectronic device including a first device and a second device storing adriver of the first device and generating transactions on an interfaceshared for respective external connections; an information processingapparatus to be connected to the electronic device via the interface:and the electronic device further comprising a unit that starts anoperation of the second device before starting an operation of the firstdevice, so as to make the driver readable from the second device via theinterface, the unit, further, controlling the first device to be in adisable state and then to switch to an enable state before the driver isread from the second device and is installed to a computer to which theelectronic device is connected.